package cn.org.xwb.bookmall.model.service;

import cn.org.xwb.bookmall.model.po.Authority;
import cn.org.xwb.common.page.dto.PageResult;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 权限表 服务类
 * </p>
 *
 * @author xwb
 * @since 2023-11-25
 */
public interface IAuthorityService extends IService<Authority> {

    /**
     * 查询并缓存所有权限组成的列表
     *
     * @return
     */
    List<Authority> findAndCacheAll();

    /**
     * 从缓存中获取所有权限，如果缓存不存在，则从数据库中查询，并缓存
     *
     * @return
     */
    List<Authority> findAllFromCache();

    /**
     * 分页获取权限列表
     *
     * @param current
     * @param pageSize 每页数据个数
     * @param disabled
     * @param nameMatch
     * @param codeMatch
     * @return
     */
    PageResult<List<Authority>> findAuthorityPage(Integer current, Integer pageSize, Boolean disabled, String nameMatch, String codeMatch);
}
